<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Convert HTML entities to their corresponding characters</title>
 </head>
 <body class="docs"><div id="layout">
  <div id="layout-content"><div id="function.html-entity-decode" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">html_entity_decode</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.3.0, PHP 5, PHP 7)</p><p class="refpurpose"><span class="refname">html_entity_decode</span> &mdash; <span class="dc-title">Convert HTML entities to their corresponding characters</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.html-entity-decode-description">
  <h3 class="title">说明</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>html_entity_decode</strong></span>
    ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$string</code></span>
   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$flags</code><span class="initializer"> = ENT_COMPAT | ENT_HTML401</span></span>
   [, <span class="methodparam"><span class="type">string</span> <code class="parameter">$encoding</code><span class="initializer"> = ini_get(&quot;default_charset&quot;)</span></span>
  ]] ) : <span class="type">string</span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>html_entity_decode()</strong></span> is the opposite of
   <span class="function"><a href="htmlentities.html" class="function">htmlentities()</a></span> in that it converts HTML entities
   in the <code class="parameter">string</code> to their corresponding characters.
  </p>
  <p class="para">
   More precisely, this function decodes all the entities (including all numeric
   entities) that a) are necessarily valid for the chosen document type — i.e.,
   for XML, this function does not decode named entities that might be defined
   in some DTD — and b) whose character or characters are in the coded character
   set associated with the chosen encoding and are permitted in the chosen
   document type. All other entities are left as is.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.html-entity-decode-parameters">
  <h3 class="title">参数</h3>
  <p class="para">
   <dl>

    
     <dt>
<code class="parameter">string</code></dt>

     <dd>

      <p class="para">
       The input string.
      </p>
     </dd>

    
    
     <dt>
<code class="parameter">flags</code></dt>

     <dd>

      <p class="para">
       A bitmask of one or more of the following flags, which specify how to handle quotes and
       which document type to use. The default is <em>ENT_COMPAT | ENT_HTML401</em>.
       <table class="doctable table">
        <caption><strong>Available <code class="parameter">flags</code> constants</strong></caption>
        
         <thead>
          <tr>
           <th>Constant Name</th>
           <th>Description</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td><strong><code>ENT_COMPAT</code></strong></td>
           <td>Will convert double-quotes and leave single-quotes alone.</td>
          </tr>

          <tr>
           <td><strong><code>ENT_QUOTES</code></strong></td>
           <td>Will convert both double and single quotes.</td>
          </tr>

          <tr>
           <td><strong><code>ENT_NOQUOTES</code></strong></td>
           <td>Will leave both double and single quotes unconverted.</td>
          </tr>

          <tr>
           <td><strong><code>ENT_HTML401</code></strong></td>
           <td>
            Handle code as HTML 4.01.
           </td>
          </tr>

          <tr>
           <td><strong><code>ENT_XML1</code></strong></td>
           <td>
            Handle code as XML 1.
           </td>
          </tr>

          <tr>
           <td><strong><code>ENT_XHTML</code></strong></td>
           <td>
            Handle code as XHTML.
           </td>
          </tr>

          <tr>
           <td><strong><code>ENT_HTML5</code></strong></td>
           <td>
            Handle code as HTML 5.
           </td>
          </tr>

         </tbody>
        
       </table>

      </p>
     </dd>

    
    
     <dt>
<code class="parameter">encoding</code></dt>

     <dd>

      
 <p class="para">
  An optional argument defining the encoding used when converting characters.
 </p>

 <p class="para">
  If omitted, the default value of the <code class="parameter">encoding</code> varies
  depending on the PHP version in use. In PHP 5.6 and later, the
  <a href="ini.core.html#ini.default-charset" class="link">default_charset</a> configuration
  option is used as the default value. PHP 5.4 and 5.5 will use
  <em>UTF-8</em> as the default. Earlier versions of PHP use
  <em>ISO-8859-1</em>.
 </p>

 <p class="para">
  Although this argument is technically optional, you are highly encouraged to
  specify the correct value for your code if you are using PHP 5.5 or earlier,
  or if your <a href="ini.core.html#ini.default-charset" class="link">default_charset</a>
  configuration option may be set incorrectly for the given input.
 </p>

      


<p class="para">
 支持以下字符集：
 <table class="doctable table">
  <caption><strong>支持的字符集列表</strong></caption>
  
   <thead>
    <tr>
     <th>字符集</th>
     <th>别名</th>
     <th>描述</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
     <td>ISO-8859-1</td>
     <td>ISO8859-1</td>
     <td>
      西欧，Latin-1
     </td>
    </tr>

    <tr>
     <td>ISO-8859-5</td>
     <td>ISO8859-5</td>
     <td>
      Little used cyrillic charset (Latin/Cyrillic).
     </td>
    </tr>

    <tr>
     <td>ISO-8859-15</td>
     <td>ISO8859-15</td>
     <td>
      西欧，Latin-9。增加欧元符号，法语和芬兰语字母在 Latin-1(ISO-8859-1) 中缺失。
     </td>
    </tr>

    <tr>
     <td>UTF-8</td>
     <td class="empty">&nbsp;</td>
     <td>
      ASCII 兼容的多字节 8 位 Unicode。
     </td>
    </tr>

    <tr>
     <td>cp866</td>
     <td>ibm866, 866</td>
     <td>
      DOS 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。
     </td>
    </tr>

    <tr>
     <td>cp1251</td>
     <td>Windows-1251, win-1251, 1251</td>
     <td>
      Windows 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。
     </td>
    </tr>

    <tr>
     <td>cp1252</td>
     <td>Windows-1252, 1252</td>
     <td>
      Windows 特有的西欧编码。
     </td>
    </tr>

    <tr>
     <td>KOI8-R</td>
     <td>koi8-ru, koi8r</td>
     <td>
      俄语。本字符集在 4.3.2 版本中得到支持。
     </td>
    </tr>

    <tr>
     <td>BIG5</td>
     <td>950</td>
     <td>
      繁体中文，主要用于中国台湾省。
     </td>
    </tr>

    <tr>
     <td>GB2312</td>
     <td>936</td>
     <td>
      简体中文，中国国家标准字符集。
     </td>
    </tr>

    <tr>
     <td>BIG5-HKSCS</td>
     <td class="empty">&nbsp;</td>
     <td>
      繁体中文，附带香港扩展的 Big5 字符集。
     </td>
    </tr>

    <tr>
     <td>Shift_JIS</td>
     <td>SJIS, 932</td>
     <td>
      日语
     </td>
    </tr>

    <tr>
     <td>EUC-JP</td>
     <td>EUCJP</td>
     <td>
      日语
     </td>
    </tr>

    <tr>
     <td>MacRoman</td>
     <td class="empty">&nbsp;</td>
     <td>
      Mac OS 使用的字符串。
     </td>
    </tr>

    <tr>
     <td><em>&#039;&#039;</em></td>
     <td class="empty">&nbsp;</td>
     <td>
      An empty string activates detection from script encoding (Zend multibyte),
      <a href="ini.core.html#ini.default-charset" class="link">default_charset</a> and current
      locale (see <span class="function"><a href="nl_langinfo.html" class="function">nl_langinfo()</a></span> and
      <span class="function"><a href="setlocale.html" class="function">setlocale()</a></span>), in this order. Not recommended.
     </td>
    </tr>

   </tbody>
  
 </table>

 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <span class="simpara">
   其他字符集没有认可。将会使用默认编码并抛出异常。
  </span>
 </p></blockquote>
</p>


     </dd>

    
   </dl>

  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.html-entity-decode-returnvalues">
  <h3 class="title">返回值</h3>
  <p class="para">
   Returns the decoded string.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.html-entity-decode-changelog">
  <h3 class="title">更新日志</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>版本</th>
       <th>说明</th>
      </tr>

     </thead>

     <tbody class="tbody">
      
 <tr>
  <td>5.6.0</td>
  <td>
   The default value for the <code class="parameter">encoding</code> parameter was
   changed to be the value of the
   <a href="ini.core.html#ini.default-charset" class="link">default_charset</a> configuration
   option.
  </td>
 </tr>


      <tr>
       <td>5.4.0</td>
       <td>
        Default encoding changed from ISO-8859-1 to UTF-8.
       </td>
      </tr>

      <tr>
       <td>5.4.0</td>
       <td>
        The constants <strong><code>ENT_HTML401</code></strong>, <strong><code>ENT_XML1</code></strong>,
        <strong><code>ENT_XHTML</code></strong> and <strong><code>ENT_HTML5</code></strong> were added.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.html-entity-decode-examples">
  <h3 class="title">范例</h3>
  <p class="para">
   <div class="example" id="example-5910">
    <p><strong>Example #1 Decoding HTML entities</strong></p>
    <div class="example-contents">
<div class="phpcode"><pre><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />$orig&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"I'll&nbsp;\"walk\"&nbsp;the&nbsp;&lt;b&gt;dog&lt;/b&gt;&nbsp;now"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$a&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(</span><span style="color: #0000BB">$orig</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$b&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">html_entity_decode</span><span style="color: #007700">(</span><span style="color: #0000BB">$a</span><span style="color: #007700">);<br /><br />echo&nbsp;</span><span style="color: #0000BB">$a</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;I'll&nbsp;&amp;quot;walk&amp;quot;&nbsp;the&nbsp;&amp;lt;b&amp;gt;dog&amp;lt;/b&amp;gt;&nbsp;now<br /><br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">$b</span><span style="color: #007700">;&nbsp;</span><span style="color: #FF8000">//&nbsp;I'll&nbsp;"walk"&nbsp;the&nbsp;&lt;b&gt;dog&lt;/b&gt;&nbsp;now<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</pre></div>
    </div>

   </div>   
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.html-entity-decode-notes">
  <h3 class="title">注释</h3>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <p class="para">
    You might wonder why trim(html_entity_decode(&#039;&amp;nbsp;&#039;)); doesn&#039;t
    reduce the string to an empty string, that&#039;s because the &#039;&amp;nbsp;&#039;
    entity is not ASCII code 32 (which is stripped by
    <span class="function"><a href="trim.html" class="function">trim()</a></span>) but ASCII code 160 (0xa0) in the default ISO
    8859-1 encoding.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.html-entity-decode-seealso">
  <h3 class="title">参见</h3>
  <p class="para">
   <ul class="simplelist">
    <li class="member"><span class="function"><a href="htmlentities.html" class="function" rel="rdfs-seeAlso">htmlentities()</a> - 将字符转换为 HTML 转义字符</span></li>
    <li class="member"><span class="function"><a href="htmlspecialchars.html" class="function" rel="rdfs-seeAlso">htmlspecialchars()</a> - 将特殊字符转换为 HTML 实体</span></li>
    <li class="member"><span class="function"><a href="get_html_translation_table.html" class="function" rel="rdfs-seeAlso">get_html_translation_table()</a> - 返回使用 htmlspecialchars 和 htmlentities 后的转换表</span></li>
    <li class="member"><span class="function"><a href="urldecode.html" class="function" rel="rdfs-seeAlso">urldecode()</a> - 解码已编码的 URL 字符串</span></li>
   </ul>
  </p>
 </div>


</div></div></div></body></html>